

#pragma once


#include "NAsyncWorkPtr.h"

class NAsyncWorkResponseQueue
{
	public:	
		void Put( NAsyncWorkPtr& in_AsyncWorkPtr );
		pair< bool, NAsyncWorkPtr > Get( void );
		bool	isOK( void ) const{ return m_bOK; }

	public:
		explicit NAsyncWorkResponseQueue( void );
		virtual ~NAsyncWorkResponseQueue( void );

	private:
		typedef list< NAsyncWorkPtr > RESPONSEQUEUE;
		RESPONSEQUEUE			m_ResponseQueue;	
		CRITICAL_SECTION		m_CS;
		bool					m_bOK;	
};


